package com.biannuo.szk.community.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.biannuo.szk.community.dao.entity.BlogDO;
import com.biannuo.szk.community.service.dto.BlogDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 博客表
 *
 * @Entity com.innovation.desk.domain.Blog
 */
@Mapper
public interface BlogMapper extends BaseMapper<BlogDO> {

    IPage<BlogDTO> getMyOriginal(@Param("page") IPage page, @Param("userId") Long userId);

    IPage<BlogDTO> getMyCollect(@Param("page") IPage page, @Param("userId") Long userId);

    IPage<BlogDTO> getMyAgree(@Param("page") IPage page, @Param("userId") Long userId);

    IPage<BlogDTO> getAllBlogList(@Param("page") IPage page, @Param("title") String title);

    /**
     * 博主页博客列表
     *
     * @param page
     * @return
     */
    IPage<BlogDTO> getBloggerBlogList(@Param("page") IPage page, @Param("userId") Long userId);

    /**
     * 增加浏览量
     *
     * @param id
     */
    void increaseViewCount(@Param("id") Long id);

    /**
     * 增加点赞量
     *
     * @param id
     */
    void increaseAgreeCount(@Param("id") Long id);

    /**
     * 减少点赞量
     *
     * @param id
     */
    void decreaseAgreeCount(@Param("id") Long id);

    /**
     * 增加收藏量
     *
     * @param id
     */
    void increaseFavoriteCount(@Param("id") Long id);

    /**
     * 减少收藏量
     *
     * @param id
     */
    void decreaseFavoriteCount(@Param("id") Long id);

    /**
     * 增加评论量
     *
     * @param id
     */
    void increaseCommentCount(@Param("id") Long id);

    Integer getAllBlogCount();
}




